<?php


namespace app\validate;


use app\lib\exception\BaseException;
use app\model\Users;
use think\Exception;
use think\facade\Cache;
use think\Validate;


class BaseValidate extends Validate
{
    public function goCheck($scene = ''){
        //获取接收到的数据
        $params = request()->param();
        //用三元运算符判断是否存在场景验证，并返回给$check变量
        $check = empty($scene)?$this->check($params):$this->scene($scene)->check($params);
        //开始判断验证
        if(!$check){
            //这里需要注意的是我用的异常返回，也可以使用return，但是方法里面需要接收返回的return数据
            throw new BaseException(['code'=>400,'msg'=>$this->getError(),'errorCode'=>400]);
        }

    }

    /**
     * 验证码是否正确
     * @param $value
     * @param $rule
     * @param array $data
     * @return bool|string
     */
    protected function checkCode($value, $rule, $data=[])
    {
        return   Cache::get($data['mobile']) != $value ? '验证码错误！' : true;
    }

    /**
     * 手机号是否存在
     * @param $value
     * @param $rule
     * @param array $data
     * @return bool|string
     */
    protected function isMobile($value, $rule, $data=[])
    {
        return is_null(Users::where('mobile',$value)->value('mobile')) ? '该手机号不存在' : true ;
    }
}